#!/bin/bash

# Gate服务启动脚本 (Linux版本)
# 支持通过JVM参数配置grpc.server.port和server.id

echo "🚪 Gate服务启动脚本"
echo "=================================="

# 设置默认参数
DEFAULT_SERVER_ID=1001
DEFAULT_GRPC_PORT=14000
DEFAULT_WEB_PORT=4000

# 从命令行参数获取配置
SERVER_ID=${1:-$DEFAULT_SERVER_ID}
GRPC_PORT=${2:-$DEFAULT_GRPC_PORT}
WEB_PORT=${3:-$DEFAULT_WEB_PORT}

echo "📋 启动配置:"
echo "  服务器ID: $SERVER_ID"
echo "  gRPC端口: $GRPC_PORT"
echo "  Web端口: $WEB_PORT"
echo

# 验证参数
if [ $SERVER_ID -lt 1001 ]; then
    echo "❌ 错误: 服务器ID必须大于等于1001"
    exit 1
fi

if [ $SERVER_ID -gt 1999 ]; then
    echo "❌ 错误: 服务器ID必须小于等于1999"
    exit 1
fi

if [ $GRPC_PORT -lt 14000 ]; then
    echo "❌ 错误: gRPC端口必须大于等于14000"
    exit 1
fi

if [ $GRPC_PORT -gt 14099 ]; then
    echo "❌ 错误: gRPC端口必须小于等于14099"
    exit 1
fi

if [ $WEB_PORT -lt 4000 ]; then
    echo "❌ 错误: Web端口必须大于等于4000"
    exit 1
fi

if [ $WEB_PORT -gt 4099 ]; then
    echo "❌ 错误: Web端口必须小于等于4099"
    exit 1
fi

echo "✅ 参数验证通过"
echo

# 切换到gate目录
cd gate

# 启动服务
echo "🚀 启动Gate服务..."
echo "使用命令: mvn spring-boot:run -Dspring-boot.run.jvmArguments=\"-Dserver.id=$SERVER_ID -Dgrpc.server.port=$GRPC_PORT -Dserver.port=$WEB_PORT\""
echo
echo "💡 提示: 启动过程中将显示详细的gRPC端口启动成功日志"
echo

mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.id=$SERVER_ID -Dgrpc.server.port=$GRPC_PORT -Dserver.port=$WEB_PORT" 